package base;

/**
 * @author scott_wrl
 * @param <T>
 */
public interface IBaseDao<T> {
	
	/**
	 * 设置sql语句
	 * @param sql	
	 */
	void setSql(String sql);
	
	
	
	/**
	 * 0.增加:通过注解获取表名
	 * @param entity
	 * @return 影响的行数
	 */
	int add(T entity)throws Exception;
	
	/**
	 * 1.增加
	 * @param entity
	 * @return 影响的行数
	 */
	int add02(T entity)throws Exception;
	
	/**
	 * 2.删除
	 * @param entity
	 * @return 影响的行数
	 */
	int deleteByID(T entity)throws Exception;
	
	/**
	 * 3.更新
	 * @param beforeEntity	原数据
	 * @param entity	更新后的数据
	 * @return	影响的行数
	 * @throws Exception
	 */
	int update(T beforeEntity ,T entity)throws Exception;
	
	/**
	 * 4.1 根据id查询
	 * @param id Integer类型
	 * @return	查询到的记录
	 * @throws Exception
	 */
	T findByID(Integer id)throws Exception;
	
	/**
	 * 4.2 根据id查询
	 * @param id String类型
	 * @return	查询到的记录
	 * @throws Exception
	 */
	T findByID(String id)throws Exception;
	
}
